package com.yanfan.data.mapper;

import com.yanfan.data.domain.Snmp;
import com.yanfan.data.domain.SnmpOid;

import java.util.List;

/**
 * snmp协议主表Mapper接口
 *
 * @author kerwincui
 * @date 2024-07-30
 */
public interface SnmpMapper {
    /**
     * 查询snmp协议主表
     *
     * @param id snmp协议主表主键
     * @return snmp协议主表
     */
    Snmp selectSnmpById(Long id);

    /**
     * 查询snmp协议主表列表
     *
     * @param snmp snmp协议主表
     * @return snmp协议主表集合
     */
    List<Snmp> selectSnmpList(Snmp snmp);

    /**
     * 新增snmp协议主表
     *
     * @param snmp snmp协议主表
     * @return 结果
     */
    int insertSnmp(Snmp snmp);

    /**
     * 修改snmp协议主表
     *
     * @param snmp snmp协议主表
     * @return 结果
     */
    int updateSnmp(Snmp snmp);

    /**
     * 删除snmp协议主表
     *
     * @param id snmp协议主表主键
     * @return 结果
     */
    int deleteSnmpById(Long id);

    /**
     * 批量删除snmp协议主表
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSnmpByIds(Long[] ids);

    /**
     * 批量删除snmp协议OID子表
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSnmpOidBySnmpIds(Long[] ids);

    /**
     * 批量新增snmp协议OID子表
     *
     * @param snmpOidList snmp协议OID子表列表
     * @return 结果
     */
    int batchSnmpOid(List<SnmpOid> snmpOidList);


    /**
     * 通过snmp协议主表主键删除snmp协议OID子表信息
     *
     * @param id snmp协议主表ID
     * @return 结果
     */
    int deleteSnmpOidBySnmpId(Long id);

    /**
     * @param ipAddress
     * @return
     */
    Snmp selectSnmpBySnmpIpAddress(String ipAddress);
}
